package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.dto.TeachplanDTO;
import com.xuecheng.api.content.model.vo.TeachplanVO;
import com.xuecheng.content.entity.Teachplan;

/**
 * <p>
 * 课程计划 服务类
 * </p>
 *
 * @author itcast
 * @since 2022-06-19
 */
public interface TeachplanService extends IService<Teachplan> {

    /**
     *   根据 课程id和公司id 查询出课程的计划
     * @param courseBaseId   Long 课程id
     * @param companyId Long  公司id  因为要做到隔离，只能看到自己公司的情况
     * @return  返回 课程计划的dto
     */

    TeachplanDTO queryTreenodesByCourseId(Long courseBaseId,Long companyId);

    /**
     *  根据id 如果有课程id进行修改操作，如果没有就进行添加操作
     * @param teachplanDTO  前端传过来的请求对象
     * @param companyId  机构id 用来检测是否是同一个公司的验证
     * @return  返回添加或修改后的对象
     */
    TeachplanDTO createOrModifyTeachplan(TeachplanDTO teachplanDTO, Long companyId);

    /**
     *  根据 教学计划id和机构id 完成对教学计划的删除
     * @param teachPlanId  教学计划id
     * @param companyId  机构id 用来确定有没有权限移除
     * @return  返回是否成功
     */
    void removeTeachplan(String teachPlanId, Long companyId);
}
